package com.xh.rufongwallpaper.service;

import com.xh.rufongwallpaper.entity.Preference;

import java.util.Optional;

/**
 * 用户偏好设置服务接口
 *
 * @author XH
 */
public interface PreferenceService {

    /**
     * 获取设备偏好设置
     *
     * @param deviceId 设备ID
     * @return 偏好设置对象
     */
    Optional<Preference> getPreferenceByDeviceId(Long deviceId);

    /**
     * 保存或更新偏好设置
     *
     * @param preference 偏好设置对象
     * @return 保存后的偏好设置对象
     */
    Preference savePreference(Preference preference);

    /**
     * 更新暗黑模式设置
     *
     * @param deviceId 设备ID
     * @param darkMode 是否开启暗黑模式
     * @return 是否成功
     */
    boolean updateDarkMode(Long deviceId, boolean darkMode);

    /**
     * 更新自动保存设置
     *
     * @param deviceId 设备ID
     * @param autoSave 是否开启自动保存
     * @return 是否成功
     */
    boolean updateAutoSave(Long deviceId, boolean autoSave);

    /**
     * 更新壁纸质量设置
     *
     * @param deviceId         设备ID
     * @param wallpaperQuality 壁纸质量
     * @return 是否成功
     */
    boolean updateWallpaperQuality(Long deviceId, String wallpaperQuality);

    /**
     * 更新通知设置
     *
     * @param deviceId     设备ID
     * @param notification 是否开启通知
     * @return 是否成功
     */
    boolean updateNotification(Long deviceId, boolean notification);
} 